home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / hplip / base / pml.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  23KB  |  615 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import sys
  5. import struct
  6. from g import *
  7. from base.utils import unprintable
  8. GET_REQUEST = 0
  9. GET_NEXT_REQUEST = 1
  10. GET_BLOCK_REQUEST = 2
  11. GET_NEXT_BLOCK_REQUEST = 3
  12. SET_REQUEST = 4
  13. ENABLE_TRAP_REQUEST = 5
  14. DISABLE_TRAP_REQUEST = 6
  15. TRAP_REQUEST = 7
  16. GET_REPLY = 128
  17. GET_NEXT_REPLY = 129
  18. BLOCK_REPLY = 130
  19. NEXT_BLOCK_REPLY = 131
  20. SET_REPLY = 132
  21. ENABLE_TRAP_REPLY = 133
  22. DISABLE_TRAP_REPLY = 133
  23. ERROR_OK = 0
  24. ERROR_OK_END_OF_SUPPORTED_OBJECTS = 1
  25. ERROR_OK_NEAREST_LEGAL_VALUE_SUBSITUTED = 2
  26. ERROR_MAX_OK = 127
  27. ERROR_UNKNOWN_REQUEST = 128
  28. ERROR_BUFFER_OVERFLOW = 129
  29. ERROR_COMMAND_EXECUTION = 130
  30. ERROR_UNKNOWN_OID = 131
  31. ERROR_OBJ_DOES_NOT_SUPPORT_SPECIFIED_ACTION = 132
  32. ERROR_INVALID_OR_UNSUPPORTED_VALUE = 133
  33. ERROR_PAST_END_OF_SUPPORTED_OBJS = 134
  34. ERROR_ACTION_CANNOT_BE_PERFORMED_NOW = 135
  35. ERROR_SYNTAX = 136
  36. TYPE_MASK = 252
  37. TYPE_OBJECT_IDENTIFIER = 0
  38. TYPE_ENUMERATION = 4
  39. TYPE_SIGNED_INTEGER = 8
  40. TYPE_REAL = 12
  41. TYPE_STRING = 16
  42. TYPE_BINARY = 20
  43. TYPE_ERROR_CODE = 24
  44. TYPE_NULL_VALUE = 28
  45. TYPE_COLLECTION = 32
  46. TYPE_UNKNOWN = 255
  47. MAX_VALUE_LEN = 1023
  48. MAX_OID_LEN = 32
  49. MAX_DATALEN = 4096
  50. INT_SIZE_BYTE = struct.calcsize('b')
  51. INT_SIZE_WORD = struct.calcsize('h')
  52. INT_SIZE_INT = struct.calcsize('i')
  53.  
  54. def buildPMLGetPacket(oid):
  55.     oid = []([ chr(int(b.strip())) for b in oid.split('.') ])
  56.     return struct.pack('>BBB%ss' % len(oid), GET_REQUEST, TYPE_OBJECT_IDENTIFIER, len(oid), oid)
  57.  
  58.  
  59. def buildPMLGetPacketEx(oid):
  60.     return buildPMLGetPacket(oid['oid'])
  61.  
  62.  
  63. def buildEmbeddedPMLSetPacket(oid, value, data_type):
  64.     return ''.join([
  65.         'PML ',
  66.         buildPMLSetPacket(oid, value, data_type)])
  67.  
  68.  
  69. def buildPMLSetPacket(oid, value, data_type):
  70.     oid = []([ chr(int(b.strip())) for b in oid.split('.') ])
  71.     if data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION):
  72.         data = struct.pack('>i', int(value))
  73.         if value > 0:
  74.             while len(data) > 0 and data[0] == '\x00':
  75.                 data = data[1:]
  76.                 continue
  77.                 []
  78.         else:
  79.             while len(data) > 1 and data[0] == '\xff' and data[1] == '\xff':
  80.                 data = data[1:]
  81.         data = struct.pack('>BB%ds' % len(data), data_type, len(data), data)
  82.     elif data_type == TYPE_REAL:
  83.         data = struct.pack('>BBf', data_type, struct.calcsize('f'), float(value))
  84.     elif data_type == TYPE_STRING:
  85.         data = struct.pack('>BBBB%ss' % len(value), data_type, len(value) + 2, 1, 21, value)
  86.     elif data_type == TYPE_BINARY:
  87.         data = data_type(len(value), ''.join, [], []([ chr(x) for x in value ]))
  88.     
  89.     p = struct.pack('>BBB%ss%ss' % (len(oid), len(data)), SET_REQUEST, TYPE_OBJECT_IDENTIFIER, len(oid), oid, data)
  90.     return p
  91.  
  92.  
  93. def ConvertToPMLDataFormat(value, data_type):
  94.     if data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION):
  95.         data = struct.pack('>i', int(value))
  96.         if value > 0:
  97.             while len(data) > 0 and data[0] == '\x00':
  98.                 data = data[1:]
  99.         else:
  100.             while len(data) > 1 and data[0] == '\xff' and data[1] == '\xff':
  101.                 data = data[1:]
  102.         data = struct.pack('>%ds' % len(data), data)
  103.     elif data_type == TYPE_REAL:
  104.         data = struct.pack('>f', float(value))
  105.     elif data_type == TYPE_STRING:
  106.         data = struct.pack('>BB%ss' % len(value), 0, 14, value)
  107.     elif data_type == TYPE_BINARY:
  108.         if type(value) == type(''):
  109.             data = value
  110.         elif type(value) == type([]):
  111.             data = ''.join([], []([ chr(x) for x in value ]))
  112.         else:
  113.             log.error('Value type error.')
  114.     
  115.     return data
  116.  
  117.  
  118. def ConvertFromPMLDataFormat(data, data_type, desired_int_size = INT_SIZE_INT):
  119.     if data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION):
  120.         if len(data):
  121.             if data[0] == '\xff':
  122.                 while len(data) < 4:
  123.                     data = '\xff' + data
  124.             else:
  125.                 while len(data) < 4:
  126.                     data = '\x00' + data
  127.             if desired_int_size == INT_SIZE_INT:
  128.                 return struct.unpack('>i', data)[0]
  129.             if desired_int_size == INT_SIZE_WORD:
  130.                 return struct.unpack('>h', data[-INT_SIZE_WORD])[0]
  131.             if desired_int_size == INT_SIZE_BYTE:
  132.                 return struct.unpack('>b', data[-INT_SIZE_BYTE])[0]
  133.             raise Error(ERROR_INTERNAL)
  134.         len(data)
  135.         return 0
  136.     data_type in (TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_COLLECTION)
  137.     if data_type == TYPE_REAL:
  138.         if len(data) == struct.calcsize('f'):
  139.             return struct.unpack('>f', data)[0]
  140.         return 0
  141.     data_type == TYPE_REAL
  142.     if data_type == TYPE_STRING:
  143.         return [](_[1])
  144.     if data_type == TYPE_BINARY:
  145.         return data
  146.  
  147.  
  148. def parsePMLPacket(p, expected_data_type = TYPE_UNKNOWN):
  149.     (pos, state) = (0, 1)
  150.     data_type = TYPE_UNKNOWN
  151.     error_state = False
  152.     while state:
  153.         if state == 1:
  154.             (reply, error_code) = struct.unpack('>BB', p[pos:pos + 2])
  155.             state = 2
  156.             pos = pos + 2
  157.             if error_code > ERROR_MAX_OK:
  158.                 error_state = True
  159.             
  160.         error_code > ERROR_MAX_OK
  161.         if state == 2:
  162.             (data_type, length) = struct.unpack('>BB', p[pos:pos + 2])
  163.             state = 3
  164.             pos = pos + 2
  165.             if error_state:
  166.                 if expected_data_type in (TYPE_COLLECTION, TYPE_ENUMERATION, TYPE_SIGNED_INTEGER, TYPE_BINARY):
  167.                     data = 0
  168.                 elif expected_data_type == TYPE_REAL:
  169.                     data = 0
  170.                 else:
  171.                     data = ''
  172.                 break
  173.             
  174.         error_state
  175.         if state == 3:
  176.             data = p[pos:pos + length]
  177.             state = 0
  178.             pos = pos + length
  179.             if data_type == TYPE_OBJECT_IDENTIFIER:
  180.                 state = 2
  181.                 continue
  182.             elif data_type == TYPE_STRING:
  183.                 if length > 0:
  184.                     (symbol_set, data) = struct.unpack('>H%ss' % (length - 2), data)
  185.                 else:
  186.                     data = ''
  187.             elif data_type == TYPE_BINARY:
  188.                 data = [ ord(b) for b in data ]
  189.             elif data_type == TYPE_ENUMERATION:
  190.                 if length > 0:
  191.                     data = struct.unpack('>i', '%s%s' % ('\x00' * (4 - length), data))[0]
  192.                 else:
  193.                     data = 0
  194.             elif data_type == TYPE_REAL:
  195.                 if length > 0:
  196.                     data = struct.unpack('>f', data)[0]
  197.                 else:
  198.                     data = 0
  199.             elif data_type == TYPE_SIGNED_INTEGER:
  200.                 if length > 0:
  201.                     pad = '\x00'
  202.                     if ord(data[0]) & 128:
  203.                         pad = '\xff'
  204.                     
  205.                     data = struct.unpack('>i', '%s%s' % (pad * (4 - length), data))[0]
  206.                 else:
  207.                     data = 0
  208.             elif data_type == TYPE_COLLECTION:
  209.                 if length > 0:
  210.                     data = struct.unpack('>i', '%s%s' % ('\x00' * (4 - length), data))[0]
  211.                 else:
  212.                     data = 0
  213.             elif data_type == TYPE_ERROR_CODE:
  214.                 data = struct.unpack('>B', data)[0]
  215.             elif data_type == TYPE_NULL_VALUE:
  216.                 data = None
  217.             
  218.             break
  219.             continue
  220.     return (data, data_type, error_code)
  221.  
  222.  
  223. def HPToSNMP(oid):
  224.     return '.'.join([
  225.         '1.3.6.1.4.1.11.2.3.9.4.2',
  226.         oid,
  227.         '0'])
  228.  
  229.  
  230. def StdToSNMP(oid):
  231.     return '.'.join([
  232.         '1.3.6.1.2.1.43',
  233.         oid[2:]])
  234.  
  235.  
  236. def HRToSNMP(oid):
  237.     return '.'.join([
  238.         '1.3.6.1.2.1.25',
  239.         oid[2:]])
  240.  
  241.  
  242. def PMLToSNMP(oid):
  243.     if not len(oid) > 2:
  244.         raise AssertionError
  245.     if oid[0] == '0':
  246.         return oid[2:]
  247.     if oid[0] == '1':
  248.         return HPToSNMP(oid)
  249.     if oid[0] == '2':
  250.         return StdToSNMP(oid)
  251.     if oid[0] == '3':
  252.         return HRToSNMP(oid)
  253.     if not False:
  254.         raise AssertionError
  255.  
  256. OID_DEVICE_ID = ('0.1.3.6.1.4.1.11.2.3.9.1.1.7.0', TYPE_STRING)
  257. OID_DEVICE_SUPPORTED_FUNCTIONS = ('1.1.2.67', TYPE_COLLECTION)
  258. DEVICE_SUPPORTED_FUNCTIONS_SCAN = 2
  259. DEVICE_SUPPORTED_FUNCTIONS_SCAN_SIMPLEX = 4
  260. DEVICE_SUPPORTED_FUNCTIONS_SCAN_DUPLEX = 8
  261. DEVICE_SUPPORTED_FUNCTIONS_COPY = 16
  262. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_SIMPLEX = 32
  263. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_DUPLEX = 64
  264. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_SIMPLEX = 128
  265. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_DUPLEX = 256
  266. DEVICE_SUPPORTED_FUNCTIONS_COPY_COLLATION = 512
  267. DEVICE_SUPPORTED_FUNCTIONS_PRINT = 1024
  268. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_SIMPLEX = 2048
  269. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_DUPLEX = 4096
  270. DEVICE_SUPPORTED_FUNCTIONS_FAX_SEND = 8192
  271. DEVICE_SUPPORTED_FUNCTIONS_FAX_RECV = 16384
  272. DEVICE_SUPPORTED_FUNCTIONS_MASS_STORAGE = 32768
  273. DEVICE_SUPPORTED_FUNCTIONS_STREAMING_SAVE = 65536
  274. DEVICE_SUPPORTED_FUNCTIONS_FAX_CONFIG = 131072
  275. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_SPEEDDIAL = 262144
  276. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_GROUPDIAL = 524288
  277. OID_CLEAN = ('1.4.1.5.1.1', TYPE_ENUMERATION)
  278. CLEAN_CLEAN = 100
  279. CLEAN_PRIME = 200
  280. CLEAN_WIPE_AND_SPIT = 300
  281. OID_SERIAL_NUMBER = ('1.1.3.3', TYPE_STRING)
  282. OID_R_SETTING = ('1.1.1.35', TYPE_SIGNED_INTEGER)
  283. OID_PRINT_INTERNAL_PAGE = ('1.1.5.2', TYPE_ENUMERATION)
  284. PRINT_INTERNAL_PAGE_SUPPLIES_PAGE = 101
  285. PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGE = 259
  286. PRINT_INTERNAL_PAGE_COLOR_CAL = 1102
  287. PRINT_INTERNAL_PAGE_COLOR_CAL_VERIFICATION = 1104
  288. PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE = 1100
  289. PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATION = 1150
  290. PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATION = 1407
  291. PRINT_INTERNAL_PAGE_AUTOMATIC_COLOR_CALIBRATION = 1408
  292. PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTIC = 1409
  293. OID_SPM_LINE1 = ('2.16.5.1.2.1.1', TYPE_STRING)
  294. OID_SPM_LINE2 = ('2.16.5.1.2.1.2', TYPE_STRING)
  295. OID_HP_LINE1 = ('1.1.2.20.2.1.1', TYPE_STRING)
  296. OID_HP_LINE2 = ('1.1.2.20.2.2.1', TYPE_STRING)
  297. OID_ON_OFF_LINE = ('1.1.2.5', TYPE_SIGNED_INTEGER)
  298. ON_OFF_LINE_ONLINE = 1
  299. ON_OFF_LINE_OFFLINE = 2
  300. ON_OFF_LINE_OFFLINE_AT_END_OF_JOB = 3
  301. OID_SLEEP_MODE = ('1.1.1.2', TYPE_SIGNED_INTEGER)
  302. SLEEP_MODE_FALSE = 1
  303. SLEEP_MODE_TRUE = 2
  304. OID_PRINTER_STATUS = ('3.3.5.1.1.1', TYPE_SIGNED_INTEGER)
  305. PRINTER_STATUS_OTHER = 1
  306. PRINTER_STATUS_UNKNOWN = 2
  307. PRINTER_STATUS_IDLE = 3
  308. PRINTER_STATUS_PRINTING = 4
  309. PRINTER_STATUS_WARMUP = 5
  310. OID_COVER_STATUS = ('2.6.1.1.3.1.1', TYPE_SIGNED_INTEGER)
  311. COVER_STATUS_OPEN = 3
  312. COVER_STATUS_CLOSED = 4
  313. OID_DETECTED_ERROR_STATE = ('3.3.5.1.2.1', TYPE_BINARY)
  314. DETECTED_ERROR_STATE_LOW_PAPER_MASK = 128
  315. DETECTED_ERROR_STATE_NO_PAPER_MASK = 64
  316. DETECTED_ERROR_STATE_LOW_CART_MASK = 32
  317. DETECTED_ERROR_STATE_OUT_CART_MASK = 16
  318. DETECTED_ERROR_STATE_DOOR_OPEN_MASK = 8
  319. DETECTED_ERROR_STATE_JAMMED_MASK = 4
  320. DETECTED_ERROR_STATE_OFFLINE_MASK = 2
  321. DETECTED_ERROR_STATE_SERVICE_REQUEST_MASK = 1
  322. DETECTED_ERROR_STATE_NO_ERROR = 0
  323. OID_MARKER_SUPPLIES_TYPE_x = '2.11.1.1.5.1.%d'
  324. OID_MARKER_SUPPLIES_TYPE_x_TYPE = TYPE_ENUMERATION
  325. OID_MARKER_SUPPLIES_TYPE_OTHER = 1
  326. OID_MARKER_SUPPLIES_TYPE_UNKNOWN = 2
  327. OID_MARKER_SUPPLIES_TYPE_TONER = 3
  328. OID_MARKER_SUPPLIES_TYPE_WASTE_TONER = 4
  329. OID_MARKER_SUPPLIES_TYPE_INK = 5
  330. OID_MARKER_SUPPLIES_TYPE_INK_CART = 6
  331. OID_MARKER_SUPPLIES_TYPE_INK_RIBBON = 7
  332. OID_MARKER_SUPPLIES_TYPE_WASTE_INK = 8
  333. OID_MARKER_SUPPLIES_TYPE_OPC = 9
  334. OID_MARKER_SUPPLIES_TYPE_DEVELOPER = 10
  335. OID_MARKER_SUPPLIES_TYPE_FUSER_OIL = 11
  336. OID_MARKER_SUPPLIES_TYPE_SOLID_WAX = 12
  337. OID_MARKER_SUPPLIES_TYPE_RIBBON_WAX = 13
  338. OID_MARKER_SUPPLIES_TYPE_WASTE_WAX = 14
  339. OID_MARKER_SUPPLIES_TYPE_FUSER = 15
  340. OID_MARKER_SUPPLIES_TYPE_CORONA_WIRE = 16
  341. OID_MARKER_SUPPLIES_TYPE_FUSER_OIL_WICK = 17
  342. OID_MARKER_SUPPLIES_TYPE_CLEANER_UNIT = 18
  343. OID_MARKER_SUPPLIES_TYPE_FUSER_CLEANING_PAD = 19
  344. OID_MARKER_SUPPLIES_TYPE_TRANSFER_UNIT = 20
  345. OID_MARKER_SUPPLIES_TYPE_TONER_CART = 21
  346. OID_MARKER_SUPPLIES_TYPE_FUSER_OILER = 22
  347. OID_MARKER_SUPPLIES_TYPE_ADF_MAINT_KIT = 23
  348. OID_MARKER_SUPPLIES_COLORANT_INDEX_x = '2.11.1.1.3.1.%d'
  349. OID_MARKER_SUPPLIES_COLORANT_INDEX_x_TYPE = TYPE_SIGNED_INTEGER
  350. OID_MARKER_SUPPLIES_MAX_x = '2.11.1.1.8.1.%d'
  351. OID_MARKER_SUPPLIES_MAX_x_TYPE = TYPE_SIGNED_INTEGER
  352. OID_MARKER_SUPPLIES_LEVEL_x = '2.11.1.1.9.1.%d'
  353. OID_MARKER_SUPPLIES_LEVEL_x_TYPE = TYPE_SIGNED_INTEGER
  354. OID_MARKER_COLORANT_VALUE_x = '2.12.1.1.4.1.%d'
  355. OID_MARKER_COLORANT_VALUE_x_TYPE = TYPE_STRING
  356. OID_MARKER_STATUS_x = '2.10.2.1.15.1.%d'
  357. OID_MARKER_STATUS_x_TYPE = TYPE_SIGNED_INTEGER
  358. OID_MARKER_STATUS_OK = 0
  359. OID_MARKER_STATUS_LOW_TONER_CONT = 8
  360. OID_MARKER_STATUS_LOW_TONER_STOP = 49
  361. OID_MARKER_STATUS_MISINSTALLED = 51
  362. OID_MARKER_SUPPLIES_DESCRIPTION_x = '2.11.1.1.6.1.%d'
  363. OID_MARKER_SUPPLIES_DESCRIPTION_x_TYPE = TYPE_BINARY
  364. OID_DEVICE_STATUS = ('3.3.2.1.5.1', TYPE_ENUMERATION)
  365. DEVICE_STATUS_UNKNOWN = 1
  366. DEVICE_STATUS_RUNNING = 2
  367. DEVICE_STATUS_WARNING = 3
  368. DEVICE_STATUS_TESTING = 4
  369. DEVICE_STATUS_DOWN = 5
  370. OID_AUTO_ALIGNMENT = ('1.1.5.2', TYPE_ENUMERATION)
  371. AUTO_ALIGNMENT = 1100
  372. OID_ZCA = ('1.4.1.8.5.4.1', TYPE_SIGNED_INTEGER)
  373. OID_AGENT2_VERTICAL_ALIGNMENT = ('1.4.1.5.3.2.5', TYPE_SIGNED_INTEGER)
  374. OID_AGENT2_HORIZONTAL_ALIGNMENT = ('1.4.1.5.3.2.6', TYPE_SIGNED_INTEGER)
  375. OID_AGENT1_BIDIR_ADJUSTMENT = ('1.4.1.5.3.1.7', TYPE_SIGNED_INTEGER)
  376. OID_AGENT2_BIDIR_ADJUSTMENT = ('1.4.1.5.3.2.7', TYPE_SIGNED_INTEGER)
  377. OID_MARKING_AGENTS_INITIALIZED = ('1.4.1.5.1.4', TYPE_COLLECTION)
  378. OID_AGENT3_VERTICAL_ALIGNMENT = ('1.4.1.5.3.3.5', TYPE_SIGNED_INTEGER)
  379. OID_AGENT3_HORIZONTAL_ALIGNMENT = ('1.4.1.5.3.3.6', TYPE_SIGNED_INTEGER)
  380. OID_AGENT3_BIDIR_ADJUSTMENT = ('1.4.1.5.3.3.7', TYPE_SIGNED_INTEGER)
  381. OID_COLOR_CALIBRATION_SELECTION = ('1.4.1.5.1.9', TYPE_SIGNED_INTEGER)
  382. OID_COLOR_CALIBRATION_ARRAY_1 = ('1.4.1.1.30.1.1', TYPE_SIGNED_INTEGER)
  383. OID_COLOR_CALIBRATION_ARRAY_2 = ('1.4.1.1.30.1.2', TYPE_SIGNED_INTEGER)
  384. OID_COLOR_CALIBRATION_ARRAY_3 = ('1.4.1.1.30.1.3', TYPE_SIGNED_INTEGER)
  385. OID_COLOR_CALIBRATION_ARRAY_4 = ('1.4.1.1.30.1.4', TYPE_SIGNED_INTEGER)
  386. OID_COLOR_CALIBRATION_ARRAY_5 = ('1.4.1.1.30.1.5', TYPE_SIGNED_INTEGER)
  387. OID_COLOR_CALIBRATION_ARRAY_6 = ('1.4.1.1.30.1.6', TYPE_SIGNED_INTEGER)
  388. OID_DEVICE_SUPPORTED_FUNCTIONS = ('1.1.2.67', TYPE_COLLECTION)
  389. DEVICE_SUPPORTED_FUNCTIONS_SCAN = 2
  390. DEVICE_SUPPORTED_FUNCTIONS_SCAN_SIMPLEX = 4
  391. DEVICE_SUPPORTED_FUNCTIONS_SCAN_DUPLEX = 8
  392. DEVICE_SUPPORTED_FUNCTIONS_COPY = 16
  393. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_SIMPLEX = 32
  394. DEVICE_SUPPORTED_FUNCTIONS_COPY_SIMPLEX_DUPLEX = 64
  395. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_SIMPLEX = 128
  396. DEVICE_SUPPORTED_FUNCTIONS_COPY_DUPLEX_DUPLEX = 256
  397. DEVICE_SUPPORTED_FUNCTIONS_COPY_COLLATION = 512
  398. DEVICE_SUPPORTED_FUNCTIONS_PRINT = 1024
  399. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_SIMPLEX = 2048
  400. DEVICE_SUPPORTED_FUNCTIONS_AUTO_FEED_DUPLEX = 4096
  401. DEVICE_SUPPORTED_FUNCTIONS_FAX_SEND = 8192
  402. DEVICE_SUPPORTED_FUNCTIONS_FAX_RECV = 16384
  403. DEVICE_SUPPORTED_FUNCTIONS_MASS_STORAGE = 32768
  404. DEVICE_SUPPORTED_FUNCTIONS_STREAMING_SAVE = 65536
  405. DEVICE_SUPPORTED_FUNCTIONS_FAX_CONFIG = 131072
  406. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_SPEEDDIAL = 262144
  407. DEVICE_SUPPORTED_FUNCTIONS_FAX_CFG_GROUPDIAL = 524288
  408. OID_BATTERY_LEVEL = ('1.1.2.13', TYPE_SIGNED_INTEGER)
  409. OID_POWER_MODE = ('1.1.2.14', TYPE_ENUMERATION)
  410. POWER_MODE_ADPATER = 1
  411. POWER_MODE_BATTERY = 2
  412. POWER_MODE_CHARGING = 4
  413. POWER_MODE_DISCHARGING = 8
  414. POWER_MODE_BATTERY_LEVEL_KNOWN = 16
  415. OID_BATTERY_LEVEL_2 = ('1.1.2.61', TYPE_SIGNED_INTEGER)
  416. OID_POWER_SETTINGS = ('1.1.2.118', TYPE_ENUMERATION)
  417. OID_POWER_SETTINGS_15MIN = 1
  418. OID_POWER_SETTINGS_30MIN = 2
  419. OID_POWER_SETTINGS_45MIN = 3
  420. OID_POWER_SETTINGS_1HR = 4
  421. OID_POWER_SETTINGS_2HR = 5
  422. OID_POWER_SETTINGS_3HR = 6
  423. OID_POWER_SETTINGS_NEVER = 999
  424. OID_DEV_DOWNLOAD_TIMEOUT = ('1.1.1.17', TYPE_SIGNED_INTEGER)
  425. DEFAULT_DOWNLOAD_TIMEOUT = 600
  426. OID_FAX_DOWNLOAD_ERROR = ('1.3.7.2.6', TYPE_SIGNED_INTEGER)
  427. OID_FAXJOB_TX_TYPE = ('1.1.6.3.1.3', TYPE_ENUMERATION)
  428. FAXJOB_TX_TYPE_HOST_ONLY = 2
  429. OID_FAXJOB_TX_STATUS = ('1.1.6.3.3.3.1', TYPE_ENUMERATION)
  430. FAXJOB_TX_STATUS_IDLE = 1
  431. FAXJOB_TX_STATUS_DIALING = 2
  432. FAXJOB_TX_STATUS_CONNECTING = 3
  433. FAXJOB_TX_STATUS_TRANSMITTING = 4
  434. FAXJOB_TX_STATUS_DONE = 5
  435. FAXJOB_TX_STATUS_STR = {
  436.     FAXJOB_TX_STATUS_IDLE: 'Idle',
  437.     FAXJOB_TX_STATUS_DIALING: 'Dialing',
  438.     FAXJOB_TX_STATUS_CONNECTING: 'Connecting',
  439.     FAXJOB_TX_STATUS_TRANSMITTING: 'Transmitting',
  440.     FAXJOB_TX_STATUS_DONE: 'Done' }
  441. OID_FAXJOB_RX_STATUS = ('1.1.6.3.3.1.1', TYPE_ENUMERATION)
  442. FAXJOB_RX_STATUS_IDLE = 1
  443. FAXJOB_RX_STATUS_RINGING = 2
  444. FAXJOB_RX_STATUS_ANSWERING = 3
  445. FAXJOB_RX_STATUS_RECEIVING = 4
  446. FAXJOB_RX_STATUS_DONE = 5
  447. FAXJOB_RX_STATUS_STR = {
  448.     FAXJOB_RX_STATUS_IDLE: 'Idle',
  449.     FAXJOB_RX_STATUS_RINGING: 'Ringing',
  450.     FAXJOB_RX_STATUS_ANSWERING: 'Answering',
  451.     FAXJOB_RX_STATUS_RECEIVING: 'Receiving',
  452.     FAXJOB_RX_STATUS_DONE: 'Done' }
  453. OID_FAX_DOWNLOAD = ('1.3.7.1.6', TYPE_ENUMERATION)
  454. UPDN_STATE_IDLE = 1
  455. UPDN_STATE_REQSTART = 2
  456. UPDN_STATE_XFERACTIVE = 3
  457. UPDN_STATE_ERRORABORT = 4
  458. UPDN_STATE_XFERDONE = 5
  459. UPDN_STATE_NEWPAGE = 6
  460. UPDN_STATE_DISABLED = 7
  461. UPDN_STATE_STR = {
  462.     UPDN_STATE_IDLE: 'Idle',
  463.     UPDN_STATE_REQSTART: 'Request start',
  464.     UPDN_STATE_XFERACTIVE: 'Transfer active',
  465.     UPDN_STATE_ERRORABORT: 'Error abort',
  466.     UPDN_STATE_XFERDONE: 'Transfer done',
  467.     UPDN_STATE_NEWPAGE: 'New page',
  468.     UPDN_STATE_DISABLED: 'Disabled' }
  469. DN_ERROR_NONE = 0
  470. DN_ERROR_HOST_ABORT = 705
  471. DN_ERROR_STOP_KEY_PRESSED = 706
  472. DN_ERROR_SESSION_FAIL = 709
  473. DN_ERROR_TX_ERROR = 710
  474. DN_ERROR_PHONE_UNAVAILABLE = 711
  475. DN_ERROR_OUT_OF_MEMORY = 713
  476. DN_ERROR_RESULT_BUSY = 714
  477. DN_ERROR_NO_ANSWER = 715
  478. DN_ERROR_NO_DIAL_TONE = 716
  479. DN_ERROR_DOC_JAM = 717
  480. DN_ERROR_DOOR_OPEN = 718
  481. DN_ERROR_POWER_FAILED = 719
  482. DN_ERROR_BLACKLIST = 720
  483. DN_ERROR_DOC_STORAGE_FULL = 721
  484. DN_ERROR_RESULT_COLOR_UNSUP = 722
  485. DN_ERROR_UNKNOWN = 9999
  486. DN_ERROR_STR = {
  487.     DN_ERROR_NONE: 'None',
  488.     DN_ERROR_HOST_ABORT: 'Host aborted',
  489.     DN_ERROR_STOP_KEY_PRESSED: 'Stop key pressed',
  490.     DN_ERROR_SESSION_FAIL: 'Session failed',
  491.     DN_ERROR_TX_ERROR: 'Transmit error',
  492.     DN_ERROR_PHONE_UNAVAILABLE: 'Phone unavailable',
  493.     DN_ERROR_OUT_OF_MEMORY: 'Out of memory',
  494.     DN_ERROR_RESULT_BUSY: 'Result busy',
  495.     DN_ERROR_NO_ANSWER: 'No answer',
  496.     DN_ERROR_NO_DIAL_TONE: 'No dial tone',
  497.     DN_ERROR_DOC_JAM: 'Document jammed',
  498.     DN_ERROR_DOOR_OPEN: 'Door open',
  499.     DN_ERROR_POWER_FAILED: 'Power failed',
  500.     DN_ERROR_BLACKLIST: 'Blacklisted',
  501.     DN_ERROR_DOC_STORAGE_FULL: 'Document storage full',
  502.     DN_ERROR_RESULT_COLOR_UNSUP: 'Color unsupported',
  503.     DN_ERROR_UNKNOWN: 'Unknown error' }
  504. OID_FAX_TOKEN = ('1.1.1.27', TYPE_BINARY)
  505. OID_FAX_TX_ID = ('1.1.6.3.2.3', TYPE_SIGNED_INTEGER)
  506. OID_FAXJOB_TX_ERROR = ('1.1.6.3.3.4.1', TYPE_SIGNED_INTEGER)
  507. OID_FAX_LOCAL_PHONE_NUM = ('1.1.3.8', TYPE_STRING)
  508. OID_FAX_STATION_NAME = ('1.1.3.9', TYPE_STRING)
  509. OID_FAX_LINE_TYPE = ('1.3.7.1.16', TYPE_ENUMERATION)
  510. OID_FAX_ANSWERMODE = ('1.1.9.2.1.1', TYPE_ENUMERATION)
  511. OID_FAX_RING_ENABLE = ('1.3.7.1.8', TYPE_ENUMERATION)
  512. OID_FAX_NUM_RINGS_PICKUP = ('1.1.9.2.1.2', TYPE_SIGNED_INTEGER)
  513. OID_FAX_MIN_RINGS_PICKUP = ('1.3.7.2.2', TYPE_SIGNED_INTEGER)
  514. OID_FAX_MAX_RINGS_PICKUP = ('1.3.7.2.3', TYPE_SIGNED_INTEGER)
  515. OID_FAX_RING_TYPE_PICKUP = ('1.1.9.2.1.3', TYPE_COLLECTION)
  516. OID_FAX_DIAL_MODE = ('1.1.9.1.1.1', TYPE_ENUMERATION)
  517. OID_FAX_ALLOW_REDIALS = ('1.4.2.5.3', TYPE_ENUMERATION)
  518. OID_FAX_REDIAL = ('1.1.9.1.1.2', TYPE_COLLECTION)
  519. OID_FAX_RESOLUTION = ('1.4.2.1.1', TYPE_BINARY)
  520. OID_FAX_CONTRAST = ('1.4.2.1.2', TYPE_SIGNED_INTEGER)
  521. OID_FAX_CFG_UPLOAD_DATA_TYPE = ('1.1.1.14', TYPE_ENUMERATION)
  522. FAX_CFG_UPLOAD_DATA_TYPE_SPEEDDIALS = 5
  523. FAX_CFG_UPLOAD_DATA_TYPE_FAXLOGS = 6
  524. FAX_CFG_UPLOAD_DATA_TYPE_CONFIG_PARAMS = 7
  525. FAX_CFG_UPLOAD_DATA_TYPE_JUNK_FAX_DIAL_STRINGS = 8
  526. OID_UPLOAD_TIMEOUT = ('1.1.1.18', TYPE_SIGNED_INTEGER)
  527. DEFAULT_UPLOAD_TIMEOUT = 60
  528. OID_DEVICE_CFG_UPLOAD = ('1.1.1.13', TYPE_ENUMERATION)
  529. OID_COPIER_TOKEN = ('1.1.1.24', TYPE_BINARY)
  530. OID_COPY_SCANNER_DIMENSIONS = ('1.2.2.2.13', TYPE_STRING)
  531. OID_COPIER_CONTRAST = ('1.5.1.2', TYPE_SIGNED_INTEGER)
  532. OID_COPIER_REDUCTION = ('1.5.1.4', TYPE_SIGNED_INTEGER)
  533. OID_COPIER_NUM_COPIES = ('1.5.1.6', TYPE_SIGNED_INTEGER)
  534. OID_COPIER_COLLATION = ('1.5.1.7', TYPE_ENUMERATION)
  535. COPIER_COLLATION_DISABLED = 1
  536. COPIER_COLLATION_FORWARD = 2
  537. OID_COPIER_ENLARGEMENT_MAXIMUM = ('1.5.1.11', TYPE_SIGNED_INTEGER)
  538. OID_COPIER_REDUCTION_MAXIMUM = ('1.5.1.12', TYPE_SIGNED_INTEGER)
  539. OID_COPIER_QUALITY = ('1.5.1.13', TYPE_ENUMERATION)
  540. COPIER_QUALITY_FAST = 1
  541. COPIER_QUALITY_NORMAL = 2
  542. COPIER_QUALITY_PRESENTATION = 3
  543. COPIER_QUALITY_DRAFT = 4
  544. COPIER_QUALITY_BEST = 5
  545. OID_COPIER_ADF_PAGE_COUNT = ('1.5.1.19', TYPE_SIGNED_INTEGER)
  546. OID_COPIER_PRINT_PAGE_COUNT = ('1.5.1.20', TYPE_SIGNED_INTEGER)
  547. OID_COPIER_FIT_TO_PAGE = ('1.5.1.47', TYPE_ENUMERATION)
  548. COPIER_FIT_TO_PAGE_DISABLED = 1
  549. COPIER_FIT_TO_PAGE_ENABLED = 2
  550. OID_COPIER_JOB_QUALITY = ('1.5.1.22', TYPE_ENUMERATION)
  551. OID_COPIER_JOB_MEDIA_SIZE = ('1.5.1.21', TYPE_ENUMERATION)
  552. COPIER_JOB_MEDIA_SIZE_US_LETTER = 2
  553. COPIER_JOB_MEDIA_SIZE_US_LEGAL = 3
  554. COPIER_JOB_MEDIA_SIZE_A4 = 26
  555. OID_COPIER_JOB_COLLATION = ('1.5.1.23', TYPE_ENUMERATION)
  556. OID_COPIER_JOB_NUM_COPIES = ('1.5.1.24', TYPE_SIGNED_INTEGER)
  557. OID_COPIER_JOB_REDUCTION = ('1.5.1.25', TYPE_SIGNED_INTEGER)
  558. OID_COPIER_JOB_CONTRAST = ('1.5.1.26', TYPE_SIGNED_INTEGER)
  559. OID_COPIER_JOB_FIT_TO_PAGE = ('1.5.1.48', TYPE_ENUMERATION)
  560. OID_COPIER_JOB = ('1.5.1.27', TYPE_ENUMERATION)
  561. COPIER_JOB_IDLE = 1
  562. COPIER_JOB_START = 2
  563. COPIER_JOB_ACTIVE = 3
  564. COPIER_JOB_ABORTING = 4
  565. COPIER_JOB_SETUP = 5
  566. OID_COLOR_COPY_REQUEST = ('1.5.1.8', TYPE_ENUMERATION)
  567. OID_SCAN_TO_PRINTER = ('1.5.1.5', TYPE_SIGNED_INTEGER)
  568. SCAN_TO_PRINTER_IDLE = 1
  569. SCAN_TO_PRINTER_START = 2
  570. SCAN_TO_PRINTER_ACTIVE = 3
  571. SCAN_TO_PRINTER_ABORTED = 4
  572. SCAN_TO_PRINTER_SET_DEFAULTS = 5
  573. SCAN_TO_PRINTER_GET_DEFAULTS = 6
  574. OID_PIXEL_DATA_TYPE = ('1.5.1.3', TYPE_SIGNED_INTEGER)
  575. PIXEL_DATA_TYPE_GRAYSCALE_256 = 8
  576. PIXEL_DATA_TYPE_COLOR_24_BIT = 24
  577. OID_COPIER_SPECIAL_FEATURES = ('1.5.1.16', TYPE_SIGNED_INTEGER)
  578. COPY_FEATURE_NONE = 1
  579. COPY_FEATURE_CLONE = 2
  580. COPY_FEATURE_POSTER = 3
  581. COPY_FEATURE_MIRROR = 4
  582. COPY_FEATURE_AUTOFIT = 5
  583. COPY_FEATURE_TWOUP = 6
  584. COPY_FEATURE_AUTOFILL = 7
  585. OID_COPIER_PHOTO_MODE = ('1.5.1.15', TYPE_COLLECTION)
  586. ENHANCE_LIGHT_COLORS = 1
  587. ENHANCE_TEXT = 2
  588. OID_COPIER_NUM_COPIES_AIO = ('1.5.1.6', TYPE_SIGNED_INTEGER)
  589. OID_COPIER_CONTRAST_AIO = ('1.5.1.2', TYPE_SIGNED_INTEGER)
  590. OID_COPIER_REDUCTION_AIO = ('1.5.1.4', TYPE_SIGNED_INTEGER)
  591. OID_COPIER_QUALITY_AIO = ('1.5.1.13', TYPE_ENUMERATION)
  592. OID_COPIER_JOB_INPUT_TRAY_SELECT = ('1.5.1.51', TYPE_SIGNED_INTEGER)
  593. COPIER_JOB_INPUT_TRAY_1 = 1
  594. COPIER_JOB_INPUT_TRAY_2 = 1
  595. COPIER_JOB_INPUT_TRAY_3 = 1
  596. OID_COPIER_MEDIA_TYPE = ('1.5.1.14', TYPE_SIGNED_INTEGER)
  597. COPIER_MEDIA_TYPE_PLAIN = 1
  598. COPIER_MEDIA_TYPE_BRIGHT_WHITE = 2
  599. COPIER_MEDIA_TYPE_PREMIUM_PHOTO = 3
  600. COPIER_MEDIA_TYPE_SPECIAL = 4
  601. COPIER_MEDIA_TYPE_TRANSPARENCY = 5
  602. COPIER_MEDIA_TYPE_IRON_ON = 6
  603. COPIER_MEDIA_TYPE_FAST_TRANSPARANCEY = 7
  604. COPIER_MEDIA_TYPE_BROCHURE_MATTE = 8
  605. COPIER_MEDIA_TYPE_BROCHURE_GLOSSY = 9
  606. COPIER_MEDIA_TYPE_PHOTO_GLOSSY = 10
  607. COPIER_MEDIA_TYPE_MATTE_PAPER = 11
  608. COPIER_MEDIA_TYPE_EVERYDAY_PHOTO = 12
  609. COPIER_MEDIA_TYPE_PHOTO_QUAL_INKJET = 13
  610. COPIER_MEDIA_TYPE_PHOTO = 14
  611. COPIER_MEDIA_TYPE_AUTOMATIC = 15
  612. COPIER_MEDIA_TYPE_ADVANCED_PHOTO = 16
  613. COPIER_MEDIA_TYPE_IRON_ON_MIRRORED = 17
  614. OID_DATE_AND_TIME = ('1.1.2.17', TYPE_BINARY)
  615.